#define _CRT_SECURE_NO_WARNINGS 1
int** transpose(int** matrix, int matrixSize, int* matrixColSize, int* returnSize, int** returnColumnSizes) {
    int** pt = (int**)malloc(sizeof(int*) * (*matrixColSize));
    *returnSize = *matrixColSize;
    *returnColumnSizes = (int*)malloc(sizeof(int) * (*matrixColSize));
    for (int i = 0; i < (*matrixColSize); i++)
    {
        (*returnColumnSizes)[i] = matrixSize;
        pt[i] = (int*)malloc(sizeof(int) * matrixSize);
    }
    for (int i = 0; i < matrixSize; i++)
    {
        for (int j = 0; j < (*matrixColSize); j++)
        {
            pt[j][i] = matrix[i][j];
        }
    }
    return pt;
}
int main()
{
    return 0;
}